package com.lt.experiment06.mission02;

import java.util.ArrayList;
import java.util.List;

/**
 * @author LT
 * @version 1.0
 * @PackageName com.lt.experiment06.mission02
 * @ClassName Website
 * @Description to do
 * @date 2021/11/28 19:10
 */
public class Website implements Subject{
    List<Observer> obs = new ArrayList<>();
    //表示有合适的硬件岗位(1有，0没有)
    int hp=0;
    //表示有合适的软件岗位(1有，0没有)
    int sp=0;
    //表示有合适的UI岗位(1有，0没有)
    int up=0;

    @Override
    public void addObserver(Observer o) {
        if(obs.contains(o)){
            return;
        }
        obs.add(o);

    }

    @Override
    public void deleteObserver(Observer o) {
        if(obs.contains(o)){
            obs.remove(o);
        }else{
            System.out.println("数组中没有该元素！删除失败");
        }
    }


    @Override
    public void notifyObservers() {
        for (Observer ob : obs) {
            ob.update(hp,sp,up);
        }
    }

    //测试用例1（三个岗位都有）
    public void change1(){
        this.hp=1;
        this.sp=1;
        this.up=1;
        this.notifyObservers();
    }
    //测试用例2（只有硬件岗位）
    public void change2(){
        this.hp=1;
        this.sp=0;
        this.up=0;
        this.notifyObservers();
    }
    //测试用例3（ui和硬件都有）
    public void change3(){
        this.hp=1;
        this.sp=0;
        this.up=1;
        this.notifyObservers();
    }
    //测试用例4（三个岗位都没有）
    public void change4(){
        this.hp=0;
        this.sp=0;
        this.up=0;
        this.notifyObservers();
    }

    public void change5() {
        this.hp=0;
        this.sp=1;
        this.up=0;
        this.notifyObservers();
    }
}
